const { DataTypes } = require('sequelize')
const seq = require('../utils/seq')
const moment = require('moment')

/**
 *项目id：id UUID
  项目名称：name string
  项目描述：desc string
  项目技术：skill string
  项目类型：type Integer 1个人项目/2外包项目/3内部项目
  源代码存放位置：path string
  项目部署地址：url string
  用户id：uid 用户表外键 UUID
  项目状态：status Integer 1开始/2暂停/3关闭
  项目创建时间：ctime string
  项目更新时间：mtime string
 */

module.exports = seq.define('project', {
  id: {
    type: DataTypes.UUID,
    primaryKey: true,
    allowNull: false,
    defaultValue: DataTypes.UUIDV4,
    comment: '项目id'
  },
  name: {
    type: DataTypes.STRING,
    allowNull: false,
    comment: '项目名称'
  },
  desc: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '项目描述'
  },
  skill: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '项目技术'
  },
  type: {
    type: DataTypes.INTEGER,
    allowNull: false,
    comment: '项目类型 1个人项目/2外包项目/3内部项目'
  },
  path: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '源代码存放位置'
  },
  url: {
    type: DataTypes.STRING,
    allowNull: true,
    defaultValue: '',
    comment: '项目部署地址'
  },
  uid: {
    type: DataTypes.UUID,
    allowNull: false,
    comment: '用户表外键'
  },
  status: {
    type: DataTypes.INTEGER,
    allowNull: false,
    comment: '项目状态 1开始/2暂停/3关闭'
  },
  ctime: {
    type: DataTypes.STRING,
    defaultValue: moment().format('YYYY-MM-DD HH:mm:ss'),
    comment: '创建时间'
  },
  mtime: {
    type: DataTypes.STRING,
    defaultValue: moment().format('YYYY-MM-DD HH:mm:ss'),
    comment: '更新时间'
  }
})